// 对于axios进行二次封装
import axios from "axios";
// 引入进度条
import nprogress from "nprogress";
// 引入进度条样式
import store from "@/store";

import "nprogress/nprogress.css";
//start 进度条开始,done进度条结束

// 利用axios对象的方法create，创建axios实例
const requests = axios.create({
  // 配置对象
  // 基础路径
  baseURL: "/api",
  // 超时时间
  timeout: 5000,
});

// 请求拦截器
requests.interceptors.request.use((config) => {
  // 进度条开始

  if (store.state.detail.uuid_token) {
    // 设置请求头带入游客唯一身份标识
    config.headers.userTempId = store.state.detail.uuid_token;
  }
  // 判断是否有token
  if(store.state.user.token){
    config.headers.TOKEN = store.state.user.token;
  }
  nprogress.start();
  return config;
});
// 响应拦截器
requests.interceptors.response.use(
  (res) => {
    // 成功
    // 进度条接收
    nprogress.done();
    return res.data;
  },
  (erros) => {
    return Promise.reject(new Error("faile"));
  }
);

export default requests;
